The Universal serial bus (USB) is a cable bus that supports data exchange between a host and a wide range of simultaneously accessible peripherals. The attached peripherals share USB bandwidth through a host-scheduled, token-base protocol.
The USB system transfers data in bit serial format between the USB host and the USB peripheral. There is only one host in a USB system and it is master of the bus. The USB is a polled bus and the Host initiates all data transfers which are either a read from or a write to an endpoint.
In USB the role of host and peripheral is defined by which end of the cable a device is connected. If a device has an A receptacle for connection to an A-plug of the cable it is an A-device and if it has a B receptacle for connection to a B-plug it is a B-device. In USB an A-device provides power via a power contact Vbus to the B-device. The A-device is always the host and the B-device is always the peripheral.
The USB On-The-Go (OTG) supplement to USB allows a device to be dual mode. A dual mode device has a mini A/B connector that allows it to be connected to a mini A-plug as an A-device or to be connected to a mini B-plug as a B-device. As a default a dual mode device when connected as an A-device operates as a default host and when connected as a B-device operates as a default peripheral. However, OTG will enable the role of the dual-role device to change without reversing the cable. Thus the OTG device will be able to operate as a host or peripheral whether to is connected as an A-device or a B-device.
On the Go will also provide power saving features. In order to conserve power, OTG will allow an A-device to leave Vbus turned off when the serial bus is not being used.
However, turning off Vbus has, as yet, unappreciated disadvantages. In the absence of Vbus it is not possible for one device to detect automatically whether it has become connected to a device, or it is still connected to another device, or it is now connected to a different device. It would be desirable to maintain lower power consumption but enable automatic detection.